home *** CD-ROM | disk | FTP | other *** search
-
- /* @(#)xtreg.h 1.1 86/09/27 SMI */
-
- /*
- * Copyright (c) 1986 by Sun Microsystems, Inc.
- */
-
- /*
- * Xylogics 472 multibus tape controller
- * IOPB definition.
- */
- struct xtiopb {
- /* Byte 1 */
- u_char xt_swab : 1; /* do byte swapping */
- u_char xt_retry : 1; /* enable retries */
- u_char xt_subfunc : 6; /* sub-function code */
- /* Byte 0 */
- u_char xt_autoup : 1; /* auto update of IOPB */
- u_char xt_reloc : 1; /* use relocation */
- u_char xt_chain : 1; /* command chaining */
- u_char xt_ie : 1; /* interrupt enable */
- u_char xt_cmd : 4; /* command */
- /* Byte 3 */
- u_char xt_errno; /* error number */
- /* Byte 2 */
- u_char xt_iserr : 1; /* error indicator */
- u_char : 2;
- u_char xt_ctype : 3; /* controller type */
- u_char : 1;
- u_char xt_complete: 1; /* completion code valid */
- u_short xt_status; /* 5,4: various status bits */
- /* Byte 7 */
- u_char : 5;
- u_char xt_unit : 3; /* unit number */
- /* Byte 6 */
- u_char xt_bytebus : 1; /* use byte transfers */
- u_char : 4;
- u_char xt_throttle: 3; /* throttle control */
- u_short xt_cnt; /* 9,8: requested count */
- u_short xt_bufoff; /* b,a: buffer offset */
- u_short xt_bufrel; /* d,c: buffer offset */
- u_short xt_nxtoff; /* f,e: next iopb offset */
- u_short xt_acnt; /* 11,10: actual count */
- };
-
- /* commands */
- #define XT_NOP 0x00 /* no operation */
- #define XT_WRITE 0x01 /* write */
- #define XT_READ 0x02 /* read */
- #define XT_SEEK 0x05 /* position */
- #define XT_DRESET 0x06 /* drive reset */
- #define XT_FMARK 0x07 /* write file mark / erase */
- #define XT_DSTAT 0x09 /* read drive status */
- #define XT_PARAM 0x0B /* set drive parameters */
- #define XT_TEST 0x0C /* self test */
-
- /* Subfunction codes */
- #define XT_REVERSE 0x20 /* reverse tape motion */
- #define XT_REC 0 /* search for record marks */
- #define XT_FILE 1 /* search for file marks */
- #define XT_REW 2 /* rewind */
- #define XT_UNLOAD 3 /* unload */
- #define XT_ERASE 1 /* erase, when used with FMARK */
- #define XT_LODENS 0 /* low density */
- #define XT_HIDENS 1 /* high density */
- #define XT_LOW 2 /* low speed */
- #define XT_HIGH 3 /* high speed */
-
- /* status codes */
- #define XTS_IEI 0x4000 /* interrupt on each iopb */
- #define XTS_EOT 0x80 /* end of tape */
- #define XTS_BOT 0x40 /* beginning of tape */
- #define XTS_FPT 0x20 /* write protected */
- #define XTS_REW 0x10 /* rewinding */
- #define XTS_ONL 0x08 /* on line */
- #define XTS_RDY 0x04 /* drive ready */
- #define XTS_DBY 0x02 /* data busy */
- #define XTS_FBY 0x01 /* formatter busy */
- #define XTS_BITS "\1FBSY\2DBSY\3RDY\4ONL\5REW\6PROT\7BOT\10EOT"
-
- /* error codes */
- #define XTE_NOERROR 0x00
- #define XTE_EOF 0x1E
- #define XTE_SOFTERR 0x1F /* corrected data err */
- #define XTE_SHORTREC 0x22
- #define XTE_LONGREC 0x23
- #define XTE_BOT 0x30
- #define XTE_EOT 0x31
-